#!/usr/bin/env python
#coding=utf-8

import wordStruct
import FIGModule
import TAGModule
import ConfigModule
import extractKeyword
import matchTag

import re
import sys
import os



#system default setting
reload(sys)
sys.setdefaultencoding('utf-8')

def importData():
	#get file path
	######################################################################################
	global BASE_DIR
	BASE_DIR = os.path.dirname(os.getcwd())
	#print BASE_DIR
	######################################################################################


	#read the config data
	global config
	config = ConfigModule.Config()
	######################################################################################
	#read the delWord
	delPath = BASE_DIR + "\\code\\config\\config_del.ini"
	print "reading config data of delWord..."
	config.setDelWordDic(delPath)
	#print config.getDelWordDic()[ord("a")].getWordQueue()[0].getWordContent()
	print "the data of delWord import finished!"


	#read the weiWord
	print "reading config data of weiWord..."
	weiPath = BASE_DIR + "\\code\\config\\config_wei.ini"
	config.setWeiWordDic(weiPath)
	#print config.getWeiWordDic()[ord("b")].getWordQueue()[0].getWordContent()
	print "the data of weiWord import finished!"


	global ontologyPath
	#read OntologyDAT
	print "reading ontology information"
	ontologyPath = BASE_DIR + "\\resource\\TAG\\ontologies.dat"
	config.readOntologyDAT(ontologyPath)
	print "the ontology information import finished!"


	#######################################################################################

	"""
	#read CSV and construct the class
	######################################################################################
	CSVPath = BASE_DIR + "\\resource\\test.CSV"
	figList = FigList()
	print "reading CSV..."
	figList.readCSV(CSVPath)
	print "CSV import finished!"
	#print figList.getFigByNo(460).getFilename()
	######################################################################################
	"""

	#read all CSV Files in a folder
	######################################################################################
	global figIndexList
	folderPath = BASE_DIR + "\\resource\\CSV"
	figIndexList = FIGModule.FigIndexList()
	print "reading all of CSV Files..."
	figIndexList.readCSVInFolder(folderPath)
	print "CSV Files index import finished!"

	"""
	for data in figIndexList.getFigIndexList():
		print data.getFigFileName()
	"""

	######################################################################################
	pause = raw_input("pause")
	#read TAG in tags.dat
	######################################################################################
	global tagIndexList
	global DATPath
	DATPath = BASE_DIR + "\\resource\\TAG\\tags.dat"
	tagIndexList = TAGModule.TagIndexList()
	print "reading DAT file..."
	tagIndexList.readDAT(DATPath)
	print "DAT file imports finished!"
	"""
	for data in tagIndexList.getTagIndexList():
		print data.getTagName()
	"""
	######################################################################################


	
	
	print "all the data import finished!!"
	#######################################################################################

def extractKeyWord(figFileName):
	extract = extractKeyword.Extract(figIndexList, config)
	extract.getFigByfileName(figFileName)
	extract.getFigContent()
	#extract.getLowerCaseContent()
	extract.addtionalWordDel()
	extract.splitWord()
	extract.deleteWord()
	extract.setWordWei()
	extract.addtionalWordWei()
	extract.rankWordByScore()
	extract.filterWord()
	#extract.showFilterWord()
	filteredKeywordList = extract.getFilteredKeywordList()
	"""
	print "##############################################################################"
	extract.showWordContent()
	"""
	return filteredKeywordList

def matchTags(filteredKeywordList):
	match = matchTag.Match(filteredKeywordList, tagIndexList.getTagIndexList())
	match.matchKeyword()
	match.gainMatchedTagInformList(DATPath)
	match.gainShowedTagInformList(config.getOntologyDic())

	#match.showMatchedTagIndexList()
	#match.showMatchedTagInformList()
	match.showShowedTagInformList()

def mainMethod(figFileName):
	print "Extracting the keyword from Fig's caption..."
	#extract the caption of Fig's Keyword
	filteredKeywordList = extractKeyWord(figFileName)

	print "Matching the keyword with Tags..."
	#use the keyword list to match the tag
	matchTags(filteredKeywordList)